<?php

/**
 * This is the model class for table "horaires".
 *
 * The followings are the available columns in table 'horaires':
 * @property integer $id
 * @property integer $zoneid
 * @property string $periodeid
 * @property string $heure
 * @property string $modeid
 */
class Horaire extends CActiveRecord {

    public static $MAX_HORAIRES_PER_ZONE = 6;



    /**
     * Returns the static model of the specified AR class.
     * @param string $className active record class name.
     * @return Horaire the static model class
     */
    public static function model($className = __CLASS__) {
	  return parent::model($className);
    }

    /**
     * @return string the associated database table name
     */
    public function tableName() {
	  return 'chauffage_horaires';
    }

    /**
     * @return array validation rules for model attributes.
     */
    public function rules() {
	  // NOTE: you should only define rules for those attributes that
	  // will receive user inputs.
	  return array(
		array('zoneid', 'numerical', 'integerOnly' => true),
		array('periodeid', 'length', 'max' => 1),
		array('modeid', 'length', 'max' => 15),
		array('heure', 'safe'),
		// The following rule is used by search().
		// Please remove those attributes that should not be searched.
		array('id, zoneid, periodeid, heure, modeid', 'safe', 'on' => 'search'),
	  );
    }

    public function afterFind()
{
    $newDate = DateTime::createFromFormat('H:i:s', $this->heure);
    $this->heure = $newDate->format('H:i');

    return parent::afterFind();
}
    
    
    /**
     * @return array relational rules.
     */
    public function relations() {
	  // NOTE: you may need to adjust the relation name and the related
	  // class name for the relations automatically generated below.
	  return array(
		'zone' => array(self::BELONGS_TO, 'Zone', 'zoneid'),
	  );
    }

    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels() {
	  return array(
		'id' => 'ID',
		'zoneid' => 'Zone',
		'periodeid' => 'Période',
		'heure' => 'Heure',
		'modeid' => 'Mode',
	  );
    }

    /**
     * Retrieves a list of models based on the current search/filter conditions.
     * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
     */
    public function search() {
	  // Warning: Please modify the following code to remove attributes that
	  // should not be searched.

	  $criteria = new CDbCriteria;

	  $criteria->compare('id', $this->id);
	  $criteria->compare('zoneid', $this->zoneid);
	  $criteria->compare('periodeid', $this->periodeid, true);
	  $criteria->compare('heure', $this->heure, true);
	  $criteria->compare('modeid', $this->modeid, true);

	  return new CActiveDataProvider($this, array(
		'criteria' => $criteria,
	  ));
    }

}